<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Article extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->user = ($this->sitemodel->is_logged()) ? $this->sitemodel->get_user($this->session->userdata('lastname')) : false;
        $this->view_folder = strtolower(__CLASS__) . '/';
        $this->picture_path = base_url() . 'pictures/';
    }

    // Fonction défaut
    public function index() {
        $data = array(
            'title' => 'Bienvenue sur le site',
            'articles' => $this->sitemodel->getAll(),
            'content' => $this->view_folder . __FUNCTION__
        );
        $this->load->view('template/content', $data);
    }

    // Permet d'afficher le panier
    public function panier() {
        // On transmet à la vue plein d'informations
        $data = array(
            'title' => 'Mon panier',
            'cart' => $this->cart->contents(), // des infos du panier
            'total' => $this->cart->total(), // Prix total
            'total_articles' => $this->cart->total_items(), //  nombre d'articles
            'content' => $this->view_folder . __FUNCTION__ // on charge le nom de la classe pour le dossier et le nom de la fonction pour le nom du fichier que l'on souhaite afficher
        );
        $this->load->view('template/content', $data); // On transmet la variable à la vue*/
    }

    // Udpate des éléments du panier
    public function update($rowid = null) {
        if (!$rowid || !$this->input->post('qty') || !is_numeric($this->input->post('qty'))) {
            redirect('article/panier');
            exit;
        }
        $data = array(
            'rowid' => $rowid,
            'qty' => $this->input->post('qty')
        );
        $this->cart->update($data);
        redirect('article/panier');
    }

    // Supprimer des éléments du panier
    public function delete($rowid = null) {
        if (!$rowid) {
            redirect();
            exit;
        }
        $data = array(
            'rowid' => $rowid,
            'qty' => 0
        );

        $this->cart->update($data);
        redirect('article/panier');
    }

    // Permet d'ajouter un élément au panier grâce à son id
    public function add($article_id = null) {
        if (!$article_id || !$this->sitemodel->getOne($article_id)) {
            redirect();
            exit; // renvoie à la page d'accueil - sécurité ou erreur
        }
        $article = $this->sitemodel->getOne($article_id); // On récupère l'article
        // On fait un tableau de données
        $data = array(
            'id' => $article->article_id,
            'qty' => 1,
            'price' => $article->price_amount,
            'name' => $article->title
        );

        $this->cart->insert($data); // on insère dans le cart classe native
        redirect('article/panier'); // On redirige vers cette page, donc vers la méthode panier
        exit;
    }

    // Fonction pour afficher un article
    function show($article_id = null) {
        if (!$article_id || !$this->sitemodel->getOne($article_id)) {
            redirect();
            exit;
        }
        $article = $this->sitemodel->getOne($article_id);
        $data = array(
            'title' => $article->title,
            'article' => $article,
            'content' => $this->view_folder . __FUNCTION__
        );
        $this->load->view('template/content', $data);
    }

}